package com.ruoyi.gbase.task;

import com.ruoyi.gbase.domain.VSms;
import com.ruoyi.gbase.service.IVSmsService;
import com.ruoyi.gbase.util.SMSUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;

/**
 * 每过5分钟自动扫一次短信列表并发送
 * @author yys
 * 20241202
 */
@Component("SendSmsSSTask")
public class SendSmsSSTask
{
    private static final Logger log = LoggerFactory.getLogger(SendSmsSSTask.class);

    @Autowired
    private IVSmsService vSmsService;

    /**
     * 发送最近1个小时大额交易的明细
     */
    public void sendSms()
    {
        List<VSms> vSmsList = vSmsService.selectVSmsList(null);
        int sendNum = vSmsList.size();
        if(sendNum>200){
            log.info("短信预警：13852532209;15150895706 content：目前短信同时发送得超过50条，系统已经阻止，请查询IM.ETL_SMS代发数量，无问题可以手动唤起发送！" + sendNum);
            SMSUtil.sendSms("13852532209;15150895706","目前短信同时发送得超过50条，系统已经阻止，请查询IM.ETL_SMS代发数量，无问题可以手动唤起发送！"+sendNum);
        }else{
            for(VSms v:vSmsList){
                if(v.getIssend()==0&&v.getForesms()==1) {
                    //1是强制短信发送
                    log.info("更新已发送记录:" + v.getId()+"  Foresms:"+v.getForesms());
                    vSmsService.updateVSms(v);   //发送完毕将  发送时间  是否发送改一下
                    log.info("发送强制短信：" + v.getTelphone() + " content：" + v.getContent() + " id:" + v.getId());
                    SMSUtil.sendSmsFore(v.getTelphone(), v.getContent());
                }else if(v.getIssend()==0&&v.getForesms()==0) {
                    //改为先更新后发送，防止重复发送
                    log.info("更新已发送记录:" + v.getId()+"  Foresms:"+v.getForesms());
                    vSmsService.updateVSms(v);   //发送完毕将  发送时间  是否发送改一下
                    log.info("发送企业微信或者短信：" + v.getTelphone() + " content：" + v.getContent() + " id:" + v.getId());
                    SMSUtil.sendSms(v.getTelphone(), v.getContent());
                }
            }
        }

    }


}
